package maple.thelittleredbook.recommendation.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import maple.thelittleredbook.content.entity.Content;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 推荐Mapper接口
 * 负责推荐算法相关的数据查询
 */
@Mapper
public interface RecommendationMapper extends BaseMapper<Content> {

    /**
     * 获取用户未浏览的内容（按点赞数降序分页）
     * 对应XML文件中的selectUnviewedContents
     *
     * @param userId 用户ID
     * @param offset 偏移量
     * @param size 每页大小
     * @return 内容列表
     */
    List<Content> selectUnviewedContents(@Param("userId") Long userId,
                                         @Param("offset") int offset,
                                         @Param("size") int size);

    /**
     * 获取全站热门内容（兜底策略）
     * 对应XML文件中的selectGlobalHotContents
     *
     * @param limit 限制数量
     * @return 内容列表
     */
    List<Content> selectGlobalHotContents(@Param("limit") int limit);
}